home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 April / CHIP 1996 aprilis (CD06).zip / CHIP_CD06.ISO / hypertxt.arj / 9501 / EMACS.CD < prev    next >
Text File  |  1995-10-28  |  20KB  |  346 lines

  1.       @VAz Emacs program editor@N
  2.  
  3.       @VUnix programozási eszközök I.@N
  4.  
  5.           Azok  számára,  akik megszokták  a  Borland programozási
  6.       környezetét, az  ablakokat, a  gyors fordítást  és az online
  7.       helpet,  elôször  egy   kicsit  fapadosnak  tûnnek   a  Unix
  8.       lehetôségei. Az  elsô dolog,  ami az  ilyen csillogó-villogó
  9.       dolgokhoz hozzászokott embereket elrettenti, az általában  a
  10.       ""szabvány"  Unixos  szövegszerkesztô,   a  @Kvi@N.  Ezek   után
  11.       következnek  a  kacifántosabb,  több  tapasztalatot  igénylô
  12.       dolgok. Ilyenek  például a  @Kmake@N, a  @Klex@N, a  @Kyacc@N, a @Klint@N, a
  13.       @Kprofilerek@N -- a felsorolást sokáig lehetne folytatni.
  14.           Még egy  C fordító  hatékony használata  is igényel némi
  15.       tapasztalatot. A hatékony kódolás  mellett még van több  más
  16.       probléma is.  Ilyen például  a hordozhatóság:  ami az  egyik
  17.       gépen mûködik, nem  biztos, hogy máshol  is fog (vagy,  hogy
  18.       máshol is ugyanúgy fog). Vannak programok, amelyek segítenek
  19.       ennek a  problémának a  megoldásában is,  de --  mint minden
  20.       segédeszköz használatához -- szükséges bizonyos  tapasztalat
  21.       ezekhez  is. Ráadásul  a legtöbb  Unixos programozói  eszköz
  22.       különálló egység, nem egy nagy rendszer része, nem  alkotnak
  23.       egy  integrált  fejlesztôi környezetet.  Emiatt  van szükség
  24.       arra,   hogy   minden   egyes   program   használatát  külön
  25.       megtanuljuk, ez pedig sokakat elkedvteleníthet.
  26.           Akiket viszont  ezek a  dolgok nem  tántorítanak el,  és
  27.       komolyabban belemerülnek a Unix alatti programozásba,  hamar
  28.       észrevehetik,  hogy  ez  a rendszer  nagyon  is  támogatja a
  29.       fejlesztés  összes  lépését,  és  ezek  a  programok   jóval
  30.       hatékonyabb  munkát  tesznek  lehetôvé,  mint  sok integrált
  31.       fejlesztôi környezet. Persze valódi problémaként megmarad az
  32.       információhiány:  kevés  a magyar  nyelven  könnyen elérhetô
  33.       szakirodalom.  Egy cikkben  nem is  vállalkozhatunk ennek  a
  34.       problémának a megoldására, nem is ez a cikk célja, csak  az,
  35.       hogy bemutassa egy kicsit (amennyire a cikk írójának szerény
  36.       tapasztalatából  futja)  a Unix  rendszer  alatt használható
  37.       programfejlesztôi eszközöket. A  cikkben általában a  unixos
  38.       lehetôségekrôl  lesz  szó,  ahol  pedig  egyedi programokról
  39.       beszélünk, ott  a GNU  programokat és  a Linux  (szabad Unix
  40.       klón) operációs rendszert vesszük alapul.
  41.           Hogyan  néz  ki   tehát  nagy  vonalakban   egy  program
  42.       megvalósítása  (a  tervezés --  egyébként  nagyon fontos  --
  43.       lépcsôfokát kihagyva)? Milyen eszközök szükségesek hozzá?  A
  44.       programfejlesztés   minden   egyes   fázisához   --  program
  45.       megírásához,    a    fordításhoz,    a    teszteléshez,    a
  46.       dokumentációhoz, a karbantartáshoz -- más típusú  eszközökre
  47.       van szükség. A legelsô -- és általában egyben a legfontosabb
  48.       -- lépést, a program megtervezését most kihagyjuk, mivel  ez
  49.       másfajta    eszközöket   igényel    (sok   DOS-os    program
  50.       használatakor egyébként is úgy tûnik, mintha ezt a lépést  a
  51.       gyakorlatban is elhanyagolták volna).
  52.  
  53.  
  54.       @VAz Emacs@N
  55.  
  56.           Kezdjük  barangolásunkat a  szövegszerkesztôknél. A  két
  57.       legfontosabb  Unixos  szövegszerkesztô  az  Emacs  és  a  @Kvi@N
  58.       (betûrendben).  Ezek   közül  az   Emacset  vizsgáljuk   meg
  59.       részletesebben, potosabban ennek programozói vonásait.
  60.           Egy kis történelem:  az Emacs szövegszerkesztôt  Richard
  61.       Stallman  készítette,  neve az  @KEditing  MACroS@N kifejezésbôl
  62.       származik.   (Richard   Stallman   az   egyik    leghíresebb
  63.       programozó, a GNU projekt  elindítója és az FSF  alapítója.)
  64.       Az  Emacs  egyik  ôse  az  MIT-n  kifejlesztett  TECO   nevû
  65.       programozható   szövegszerkesztô.   (A   TECO   egy    olyan
  66.       szövegszerkesztô,  amely  képes  bármilyen karaktersorozatot
  67.       parancsként  értelmezni.  Ezt szó  szerint  kell érteni:  az
  68.       MIT-n sokszor játszották azt, hogy kitalálták: ha a TECO-nak
  69.       parancsként beírják valakinek a nevét, mi fog történni.)  Az
  70.       Emacs szövegszerkesztônek rengeteg változata van, mi most  a
  71.       GNU Emacset vesszük alapul.
  72.  
  73.  
  74.       @VEmacs = rejtôzködô LISP interpreter@N
  75.  
  76.           Ennek a szövegszerkesztônek a koncepciója eléggé egyedi:
  77.       teljes   egészében   egy   --   speciális   tulajdonságokkal
  78.       felruházott -- LISP értelmezôprogramra épül. Ez azt jelenti,
  79.       hogy nagy része LISP-ben  van írva, bôvítésének módja  újabb
  80.       LISP függvénykönyvtárak  megírása. Persze  anélkül is  lehet
  81.       használni, hogy valaki egyáltalán tudná azt, hogy mi is az a
  82.       LISP,   és  lehetôségeinek   nagy  részét   el  lehet   érni
  83.       mindenfajta varázslások nélkül is.
  84.           Kezdjük tehát a  legelején. A szövegszerkesztô  az @Kemacs@N
  85.       parancs kiadására indul. Erre  betöltôdik a program, majd  a
  86.       gép  és  a  felhasználóspecifikus  konfigurációs  állományok
  87.       feldolgozására kerül sor. A felhasználói konfigurációs  file
  88.       is   LISP   nyelven   van   írva,   de   legtöbbször    csak
  89.       billentyû-definíciókat és értékadásokat tartalmaz, ezeknek a
  90.       szintaktikáját még egyszerû megtanulni.
  91.           Az elsô kérdés, amit  meg kell válaszolni: hogyan  lehet
  92.       segítséget kérni? Az Emacsnek eléggé kiterjedt súgórendszere
  93.       (help) van. Ha lenyomjuk  a [Ctrl H]-t kétszer  egymás után,
  94.       egy ablakban segítséget kapunk a súgórendszer használatához.
  95.       Kérhetünk  leírást  egy funkcióról,  megnézhetjük,  hogy egy
  96.       billentyûhöz milyen funkció van hozzárendelve, elolvashatunk
  97.       egy teljes Emacs referenciát, információt kérhetünk az Emacs
  98.       fô-      és       alüzemmódjairól,      változóiról       és
  99.       szubrutinkönyvtárairól.  Elôször bonyolultnak  tûnhet a  sok
  100.       hosszú  control/alt/shiftes bilentyûkombináció,  de egy  kis
  101.       gyakorlat után sokkal hatékonyabban lehet az Emacs -- nagyon
  102.       jól  kidolgozott  -- szöveges  lehetôségeit  használni, mint
  103.       állandóan menükben keresgélni.
  104.           Mint  már  említettem,  a  szövegszerkeztô  minden egyes
  105.       funkcióját  egy   LISP  függvény   valósítja  meg.   Ezeknek
  106.       természetesen  van  nevük,   és  nem  kell   minden  parancs
  107.       billentyûkombinációját fejben  tartanunk, hanem  az [Alt  X]
  108.       billentyûk lenyomása  után közvetlenül  is kiadhatjuk  ôket.
  109.       Vannak olyan parancsok is, amelyeket alapállapotban csak így
  110.       lehet kiadni. Numerikus argumentumot egy parancsnak a  [Ctrl
  111.       U] lenyomása után adhatunk meg (még a parancs kiadása --  az
  112.       [Alt X] lenyomása -- elôtt). Ha csak egy részére  emlékszünk
  113.       egy parancsnak, vagy meg akarjuk kerestetni azokat,  amelyek
  114.       egy  bizonyos  típusú  mûveletet  végeznek,  használhatjuk a
  115.       [Ctrl  H] [A]  kombinációt. Például  a [Ctrl  H] [A]  @Kregion@N
  116.       parancs  felsorolja az  összes olyan  Emacs LISP  függvényt,
  117.       amelynek a nevében szerepel a @Kregion@N szó -- tehát az  összes
  118.       olyan függvényt, amellyel blokkmûveleteket lehet végezni.
  119.  
  120.  
  121.       @VAblak- és pufferkezelés@N
  122.  
  123.           Az  Emacsben  a szerkesztés  alapvetô  egysége a  puffer
  124.       (buffer). A szerkesztômûveleteket egy puffer tartalmán, vagy
  125.       annak egy részén végezzük. Amit viszont a képernyôn  látunk,
  126.       az általában  kettô vagy  több ablak.  Egy ablak  mindig egy
  127.       puffer  egy  részét  mutatja.  Az  ablakok  és  a   pufferek
  128.       függetlenek egymástól olyan  tekintetben, hogy az  egyik egy
  129.       példányának megszûnése  vagy létrejötte  nem befolyásolja  a
  130.       másik egyik  példányának létét  sem. Ha  tehát eltüntetünk a
  131.       képernyôrôl egy ablakot, az  nem jelenti azt, hogy  megszûnt
  132.       az  a puffer,  aminek a  tartalmát eddig  abban az  ablakban
  133.       szerkesztettük.  Egy  listát  kérhetünk  az  összes   puffer
  134.       állapotáról a [Ctrl X] [Ctrl B] billentyûkombinációval.  (Ez
  135.       nem ugyanaz, mint a [Ctrl X] [B]!)
  136.           Az   ablakokat    vízszintesen   és    függôlegesen   is
  137.       kettéoszthatjuk,    megváltoztathatjuk    méreteiket,     és
  138.       kijelölhetjük, hogy melyik  puffert szerkesztjük bennük.  Az
  139.       ablakok függôleges kettéosztása  a [Ctrl X]  [3], vízszintes
  140.       kettéosztása  a  [Ctrl  X]  [2]  parancsokkal  történik.   A
  141.       következô ablakra a  [Ctrl X] [O]  billentyûkkel ugorhatunk.
  142.       Bezárni  egy  ablakot  a [Ctrl  X]  [0],  teljes képernyôsre
  143.       nagyítani pedig  a [Ctrl  X] [1]  kombinációval tudunk.  Egy
  144.       file-t megnyitni az aktuális ablakban [Ctrl X] [Ctrl  F]-fel
  145.       tudunk, az aktuális ablak által mutatott puffert a [Ctrl  X]
  146.       [B] paranccsal lehet megváltoztatni.
  147.           Az   Emacs  minden   egyes  pufferhez   rendel  egy   fô
  148.       szerkesztési  üzemmódot,   és  minden   pufferhez  rendelhet
  149.       szerkesztési  alüzemmódokat  (major and  minor  modes.) Ezek
  150.       szabályozzák   például   a   billentyûlenyomásokhoz  rendelt
  151.       funkciókat  vagy  a puffer  tartalmának  megjelenítését. Más
  152.       jelentés van például a [Tab] billentyûhöz rendelve C  módban
  153.       mint a Fundamental (alap) módban. Ez egy kicsit  pontosabban
  154.       a  következôket  jelenti: az  Emacs  minden egyes  billentyû
  155.       leütésekor végrehajt  egy LISP  függvényt. Azt,  hogy melyik
  156.       billentyûhöz milyen  függvény tartozik,  táblázatokból dönti
  157.       el:  van egy  globális táblázat,  amely mindegyik  üzemmódra
  158.       érvényes,  és  vannak módokhoz  rendelt  lokális táblázatok,
  159.       amelyeknek  az  érvényességi  köre  csak  a  megfelelô  módú
  160.       pufferekre terjed ki. Elôször természetesen a lokális,  majd
  161.       sikertelenség  esetén  a  globális  táblázatban  keres,   és
  162.       végrehajtja   a   megfelelô   függvényt.   Ez   például   az
  163.       alfanumerikus   kódok  esetén   a  @Kself-insert-command@N.   Ez
  164.       egyszerûen  beilleszti  a pufferbe  annak  a billentyûnek  a
  165.       kódját, amelyiknek a leütése miatt meghívódott, így nem kell
  166.       mindig megadni  azt, hogy  az [A]  billentyû lenyomására  az
  167.       ""a"  karakter   kerüljön  bele   a  pufferbe,   hanem  elég
  168.       alapértelmezésben ezzel a függvénnyel feltölteni a megfelelô
  169.       táblázatot.
  170.           Ez eddig igen bonyolultan hangzott, pedig alapjában véve
  171.       egyszerû és logikus.  Összefoglalásként: az Emacs  alapja az
  172.       Emacs LISP értelmezôprogram.  Ez egyszerû LISP  interpreter,
  173.       felruházva   néhány   speciális,   a    szövegszerkesztéshez
  174.       szükséges  tulajdonsággal. Ilyen  például a  pufferek és  az
  175.       ablakok  kezelése,  billentyûzetkezelés,  gyors szövegkezelô
  176.       függvények. Ha alaposabban  belegondolunk, ez nagyon  komoly
  177.       lehetôségeket  biztosít  a  programozó  számára:  az  editor
  178.       szinte bármelyik részét kedve szerint alakíthatja, egy olyan
  179.       nyelven,   amely   támogatja   ôt,   amelybôl   elérheti   a
  180.       szövegszerkesztô összes lehetôségét, de amely ugyanakkor egy
  181.       különálló  --  és  ráadásul  elég  ismert,  és  a  megfelelô
  182.       területeken elég hatékony -- programozási nyelvre épül.
  183.  
  184.  
  185.       @VBôvítések@N
  186.  
  187.           Az  Emacs  bôvíthetôségét  sokan  kihasználták  már, sok
  188.       olyan    függvénykönyvtár   van    amely   elég    speciális
  189.       szövegszerkesztési  --  és  nem  csak  szövegszerkesztési --
  190.       feladatok  megoldására  készült.  Lehet  levelezni,   USENET
  191.       news-t olvasni, amôbát játszani vele. Ha nagyon  unatkozunk,
  192.       nézhetjük, miközben megoldja  a Hanoi Tornyai  feladatot. És
  193.       ha   végképp   nem  bírunk   zöldágra   vergôdni  valamivel,
  194.       forduljunk csak nyugodtan az  Emacshez: írjuk be, hogy  [Alt
  195.       X] @Kdoctor@N, és hosszú (bár nem túl intelligens)  beszélgetést
  196.       folytathatunk az  egyik klasszikus  -- és  korának megfelelô
  197.       színvonalú -- mesterséges intelligencia programmal.
  198.           Ezek  persze   nem  tartoznak   az  Emacs   legfontosabb
  199.       feladatai közé.  A valóban  komoly és  igen jól  használható
  200.       lehetôségek közé tartozik  viszont az, hogy  aszinkron módon
  201.       tudunk programot fordítani:  miközben a rendszer  fordít, mi
  202.       már javíthatjuk is az idôközben felmerült hibákat (ez persze
  203.       az Emacs  DOS-os változatánál  nem így  mûködik,) a rengeteg
  204.       gépelésgyorsító  funkció   (ezek  persze   nem  a   gépelést
  205.       gyorsítják,   hanem   a   begépelendô   szöveg   mennyiségét
  206.       csökkentik),  vagy  a nagyon  rugalmas  programozhatóság. Az
  207.       Emacs  egyik  üzemmódját  például  Interaktív  Lisp   módnak
  208.       hívják, mivel azonnal  kiértékeli, amit beírunk  a pufferbe,
  209.       és kiírja az eredményt (így persze nagyon leegyszerûsödik  a
  210.       szövegszerkesztô   bôvítések   kipróbálása,   sôt,   ezt   a
  211.       lehetôséget   használhatjuk   egyszerû   algoritmusok  gyors
  212.       kipróbálására is.)
  213.           Mielôtt rátérnénk az Emacs  programfejlesztés-specifikus
  214.       aspektusaira, szeretném  megjegyezni, hogy  hatékonyan lehet
  215.       vele  más  típusú szövegeket  is  szerkeszteni. Bár  nincsen
  216.       saját file-formátuma, vannak olyan szerkesztési  üzemmódjai,
  217.       amelyek jól  alkalmazkodnak például  a TeX,  HTML vagy  SGML
  218.       formátumokhoz.
  219.  
  220.  
  221.       @VIntegrált fejlesztôi környezet@N
  222.  
  223.           Fontos  képessége  az Emacs-nek,  hogy  hatékonyan képes
  224.       integrálni   már   meglévô   fejlesztôi   eszközöket.  Ennek
  225.       segítségével   tulajdonképpen   rendelkezik   a   DOS  alatt
  226.       megszokott  fejlesztôi  környezetek  minden tulajdonságával:
  227.       tudunk    programot    fordítani,    nyomkövetni    stb.   A
  228.       programfordítást    Unix    alatt    legtöbbször    a   make
  229.       segédprogrammal végezzük, nyomkövetésre több program van, az
  230.       Emacs a GNU gdb programot támogatja. Támogatja ezeken  kívül
  231.       még a GNU RCS és az SCCS karbantartó rendszerek  használatát
  232.       is. Nem  elhanyagolható az  sem, hogy  ablakban tudunk  Unix
  233.       shellt futtatni.
  234.           A programfordítás a compile parancs kiadásával  történik
  235.       ([Alt X] @Kcompile@N). Ezután meg kell mondani, hogy milyen Unix
  236.       shell  parancs  végrehajtásával fordul  le  a programunk.  A
  237.       parancs végrehajtására külön processz indul, ez azt jelenti,
  238.       hogy  a  fordítással párhuzamosan  mást  is csinálhatunk.  A
  239.       parancs kimenete  külön ablakba  kerül. Ennek  az ablaknak a
  240.       tartalma  alapján  az  [Alt  X]  @Knext-error@N  paranccsal  (ez
  241.       alapértelmezésben  az  [Alt  `]  (a  Tab  feletti aposztrof)
  242.       billentyû  lenyomásakor  hajtódik  végre)  végigmehetünk  az
  243.       összes -- a fordító által talált -- hibán, és még a fordítás
  244.       befejezéséig kijavíthatjuk ôket, hogy a második  próbálkozás
  245.       után már tökéletesen mûködjön.
  246.           Jól  használható   dolgok  az   úgynevezett  rövidítések
  247.       (abbrev.)  Ezek  olyan  szavak,  amelyeket  nem  kell  végig
  248.       begépelni, csak néhány betût; ezek a [Space] lenyomása  után
  249.       ki  lesznek  cserélve  a  rövidítés  definíciójában megadott
  250.       szóra (nem  szükséges tehát,  hogy egyáltalán  szerepeljen a
  251.       rövidítésben a rövidített  szó akár egyetlen  karaktere is).
  252.       Ez  jelentôsen  megnövelheti a  gépelési  sebességet. Nagyon
  253.       hasznos  programok begépelése  esetén is,  hiszen például  a
  254.       Smalltalk nyelv esetében  egy-egy új osztály  létrehozásakor
  255.       elküldött üzenet  (ami még  csak létrehozza  az új osztályt)
  256.       legalább öt sornyi --  és unalmas minden alkalommal  beírni,
  257.       hogy
  258.       @KObject subclass:
  259.            @KinstanceVariableNames: ''
  260.            @KclassVariableNames: ''
  261.            @KpoolDictionaries: ''
  262.       @Kcategory: nil !@N
  263.           Sokkal egyszerûbb definiálni egy abbrevet, ami mondjuk a
  264.       ""qwer" szóhoz ezt  rendeli. Ezt persze  nemcsak programozás
  265.       során lehet  kihasználni, nagyon  hasznos akármilyen  szöveg
  266.       gépelésénél.
  267.           Még egy  fontos lehetôség  az úgynevezett  TAGS táblázat
  268.       használata.  Ez  egy   kifejezetten  a  C/C++   programozást
  269.       támogató eszköz.  Használatával egyszerûen  lehet oda-vissza
  270.       mozogni a  forrásmodulok --  függvénydefiníciók között.  Egy
  271.       TAGS file tartalmazza a függvény és makródefiníciók  egy-egy
  272.       forrásmodulbeli  elhelyezkedését.  Egy,  az  Emacs   számára
  273.       elfogadható  formátumú  TAGS  file-t  az  etags   programmal
  274.       hozhatunk     létre.     Használata     egyszerû:    ""etags
  275.       forrásfile-ok". Ez  létrehoz egy  TAGS nevû  file-t, amit az
  276.       [Alt X] @Kvisit-tags-table@N paranccsal tölthetünk be.  Ezekután
  277.       az  [Alt  .]  billentyûkkel  lehet  a  TAGS  file-ban  leírt
  278.       függvénydefiníciók, stb.  között mozogni.  Természetesen nem
  279.       kell minden egyes változtatás után újra lefuttatni az  etags
  280.       programot,   mivel   az   Emacs   megtalálja   a   megfelelô
  281.       definíciókat akkor is, ha már nem pontosan ott (esetleg  nem
  282.       is ugyanabban a forrásmodulban) vannak.
  283.           És még egy érdekes lehetôség: az [Alt Tab] billentyûkkel
  284.       lehet kiegészíteni a  megkezdett függvények nevei.  Például,
  285.       ha a TAGS file-ban van egy @Khosszu_nevu_fuggveny@N definíciója,
  286.       akkor  elég,  ha  beírjuk  az  elsô  néhány  karakterét majd
  287.       lenyomjuk az [Alt Tab] billentyûket: erre (amennyiben ez  az
  288.       egyetlen lehetôség)  az Emacs  kiegészíti (pl.  @Khossz@N + [Alt
  289.       Tab] = @Khosszu_nevu_fuggveny@N).
  290.  
  291.  
  292.       @VA sokoldalú szövegszerkesztô@N
  293.  
  294.           Annak  ellenére,  hogy  ez  az  editor  --  történetébôl
  295.       kifolyólag  --   fôleg  szöveges   üzemmódú  mûködésre   van
  296.       tervezve,   használhatjuk   X   alatt   is.   Ekkor  legtöbb
  297.       lehetôségét elérhetjük  menükön keresztül  is --  bár sokkal
  298.       gyorsabb  a   megfelelô  billentyûkombinációkat   használni,
  299.       mintsem állandóan felemelni a kezünket a billentyûzetrôl egy
  300.       egér után kotorászva. X alatt használhatjuk a Borland  IDE-k
  301.       bôl  megszokott  syntax  highlightot  a  hilit19  Emacs LISP
  302.       szubrutinkönyvtár  segítségével.  Ez  nemcsak  C,  C++, LISP
  303.       programozási nyelveket ismer, hanem képes a GNUS-t (Emacs-es
  304.       newsreadert) is megfelelô módon színezni.
  305.           Még  rengeteg  hasznos tulajdonsága,  lehetôsége  van az
  306.       Emacsnek  ezeken  kívül.  Aki  kíváncsi  rájuk,  legjobb, ha
  307.       végigolvassa  a  dokumentációját. Ezt  a  GNU Emacshez  info
  308.       formátumban  találjuk  meg,  elolvasni  az  info  programmal
  309.       tudjuk,   vagy   Emacsben   a   [Ctrl   H]   [I]  billentyûk
  310.       segítségével.
  311.           Persze nem ez  az egyetlen programozói  szövegszerkesztô
  312.       Unix alá. Sokan használják például a vi nevût; ennek --  bár
  313.       nem rendelkezik annyi funkcióval,  mint az Emacs --  legfôbb
  314.       elônye  könnyû  fajsúlya és  gyorsasága.  Bár kezelését  nem
  315.       sokkal    könnyebb    megtanulni,   ez    is    egy   kitûnô
  316.       szövegszerkesztô   és   rengeteg   dologgal   támogatja    a
  317.       programozást (pl.  az Emacsnél  megismert TAGS  file-t is  a
  318.       ctags program segítségével). X alá pedig itt van például  az
  319.       xcoral.  Ez  egy   kifejezetten  C/C++  programozásra   való
  320.       szövegszerkesztô, sok érdekes és hasznos lehetôséggel.
  321.           Az   egyik   legfontosabb   eszköz,   amit   az    egész
  322.       programfejlesztés    során    legtöbbször    használunk,   a
  323.       szövegszerkesztô.   Nagyon   fontos   tehát,   hogy   minden
  324.       igényünket gyorsan kielégítse,  és minden részét  ízlésünköz
  325.       igazíthassuk. Ezeknek  a követelményeknek  a legtöbb  Unixos
  326.       programozható  szövegszerkesztô   megfelel,  a   lehetôségek
  327.       legszélesebb skálájával mégis az Emacs rendelkezik -- persze
  328.       méretének  rovására.  Ez  legtöbbször  nem  teszi alkalmassá
  329.       egy-egy  file  alkalmi szerkesztgetésére,  például  hogy egy
  330.       külsô  levelezôprogramból az  Emacsel szerkesszünk  levelet.
  331.       (Erre is született  megoldás: az Emacs  szerverprogramja. Ez
  332.       azt jelenti, hogy miután az [Alt X] @Kserver-start@N  paranccsal
  333.       elindítjuk  a  szerverprogramot,  az  @Kemacsclient   file-név@N
  334.       paranccsal, amit mondjuk egy másik ablakból indítunk, a  már
  335.       elindított szövegszerkesztôben szerkeszthetünk.)
  336.           Összefoglalásként: mivel nagyon fontos, hogy megtaláljuk
  337.       a megfelelô eszközt programjaink begépelésére, gondosan kell
  338.       mérlegelnünk,  hogy  melyik az  a  szövegszerkesztô, amelyik
  339.       mindent  tud,  amit  el akarunk  vele  végeztetni.  A unixos
  340.       szövegszerkesztôknek sok típusa  van, ezek közül  csak egyik
  341.       az  Emacs, bár  a legelterjedtebbek  közé tartozik.  Richard
  342.       Stallman klasszikus programja most is nagyon népszerû, és az
  343.       Interneten keresztül nagyon hatékony támogatást élvez.
  344.  
  345.       @KÉder Géza@N
  346.